F1C100S裸跑实现硬件多图层叠加和Alpha / 全志 SOC / WhyCan Forum(哇酷开发者社区)

您所在的位置:网站首页 全志 f1c100 F1C100S裸跑实现硬件多图层叠加和Alpha / 全志 SOC / WhyCan Forum(哇酷开发者社区)

F1C100S裸跑实现硬件多图层叠加和Alpha / 全志 SOC / WhyCan Forum(哇酷开发者社区)

2023-07-24 16:24| 来源: 网络整理| 查看: 265

使用论坛里裸跑 Framebuffer,原始代码只使用了Display Engine种back-end模块的Layer0图层.使用外部2个vbuf作为缓存。DEbe可以支持4个图层的alpha和叠加等操作。这里测试了下,使用2个图层Layer0 和 Layer1。关闭alpha,只用了叠加(color key)。效果参考视频。

修改部分主要是 f1c100s_debe_set_mode 函数设置Debe的模式,就可以了。

inline static void f1c100s_debe_set_mode(fb_f1c100s_pdata_t * pdat) { struct f1c100s_debe_reg_t * debe = (struct f1c100s_debe_reg_t *)(pdat->virtdebe); uint32_t val; // F1C200s DEbe模块使用双图层 // // 是能 DEbe模块 // val = read32((virtual_addr_t)&debe->mode); val |= (1 mode, val); // 显示尺寸 // write32((virtual_addr_t)&debe->disp_size, (((pdat->height) - 1) width) - 1) backcolor, (0x00503050) ); // 颜色KEY // write32((virtual_addr_t)&debe->color_key_max, (0x00FFFFFF) ); write32((virtual_addr_t)&debe->color_key_min, (0x00303030) ); write32((virtual_addr_t)&debe->color_key_config, (0x0000003F) ); // Layer0 设置 // write32((virtual_addr_t)&debe->layer0_size, (((pdat->height) - 1) width) - 1) layer0_stride, ((pdat->width) layer0_addr_low32b, (uint32_t)(pdat->vram[0]) layer0_addr_high4b, (uint32_t)(pdat->vram[0]) >> 29); write32((virtual_addr_t)&debe->layer0_attr1_ctrl, 0x09 layer0_attr0_ctrl, (0x80 vram[1]) layer1_addr_high4b, (uint32_t)(pdat->vram[1]) >> 29); write32((virtual_addr_t)&debe->layer1_attr1_ctrl, 0x09 layer1_attr0_ctrl, (0xF0


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3